@@ -3,7 +3,7 @@ |
||
3 | 3 |
archiveVersion = 1; |
4 | 4 |
classes = { |
5 | 5 |
}; |
6 |
- objectVersion = 46; |
|
6 |
+ objectVersion = 51; |
|
7 | 7 |
objects = { |
8 | 8 |
|
9 | 9 |
/* Begin PBXBuildFile section */ |
@@ -38,6 +38,7 @@ |
||
38 | 38 |
050D719B22531B860076CE06 /* RxSwift.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 050D719A22531B860076CE06 /* RxSwift.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; |
39 | 39 |
050D719D22531BA60076CE06 /* SQLite.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 050D719C22531BA60076CE06 /* SQLite.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; |
40 | 40 |
050D719E22531BBF0076CE06 /* Differentiator.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 05130FBD21CA194B004EF1BE /* Differentiator.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; |
41 |
+ 050D71A322545D550076CE06 /* NavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 050D71A222545D550076CE06 /* NavigationController.swift */; }; |
|
41 | 42 |
05130F4021C94B33004EF1BE /* PaiaiUIKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 05130F3021C94B32004EF1BE /* PaiaiUIKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; |
42 | 43 |
05130F5721C94C12004EF1BE /* AlertAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05130F4F21C94C12004EF1BE /* AlertAnimator.swift */; }; |
43 | 44 |
05130F5921C94C12004EF1BE /* AlertViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05130F5121C94C12004EF1BE /* AlertViewController.swift */; }; |
@@ -147,10 +148,7 @@ |
||
147 | 148 |
0513106721CA290B004EF1BE /* DateExt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0543274721C68C1900C6388D /* DateExt.swift */; }; |
148 | 149 |
0513106921CA34D6004EF1BE /* GroupDetailCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0513106821CA34D6004EF1BE /* GroupDetailCoordinator.swift */; }; |
149 | 150 |
0513106B21CA3545004EF1BE /* PhotoDetailCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0513106A21CA3545004EF1BE /* PhotoDetailCoordinator.swift */; }; |
150 |
- 0513107D21CA3907004EF1BE /* CancelAlertAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0513106F21CA3907004EF1BE /* CancelAlertAction.swift */; }; |
|
151 |
- 0513107F21CA3907004EF1BE /* DestructiveAlertAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0513107121CA3907004EF1BE /* DestructiveAlertAction.swift */; }; |
|
152 | 151 |
0513108021CA3907004EF1BE /* ActionSheetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0513107221CA3907004EF1BE /* ActionSheetView.swift */; }; |
153 |
- 0513108121CA3907004EF1BE /* ConfirmAlertAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0513107321CA3907004EF1BE /* ConfirmAlertAction.swift */; }; |
|
154 | 152 |
0513109321CA3915004EF1BE /* ColorQR.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0513108A21CA3914004EF1BE /* ColorQR.swift */; }; |
155 | 153 |
0513109421CA3915004EF1BE /* QRCodeMaskView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0513108B21CA3914004EF1BE /* QRCodeMaskView.swift */; }; |
156 | 154 |
0513109521CA3915004EF1BE /* QRCodeScanDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0513108C21CA3914004EF1BE /* QRCodeScanDelegate.swift */; }; |
@@ -347,6 +345,7 @@ |
||
347 | 345 |
050D719822531B780076CE06 /* RxCocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxCocoa.framework; path = Carthage/Build/iOS/RxCocoa.framework; sourceTree = "<group>"; }; |
348 | 346 |
050D719A22531B860076CE06 /* RxSwift.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxSwift.framework; path = Carthage/Build/iOS/RxSwift.framework; sourceTree = "<group>"; }; |
349 | 347 |
050D719C22531BA60076CE06 /* SQLite.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SQLite.framework; path = Carthage/Build/iOS/SQLite.framework; sourceTree = "<group>"; }; |
348 |
+ 050D71A222545D550076CE06 /* NavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationController.swift; sourceTree = "<group>"; }; |
|
350 | 349 |
050E210F21B8CE8A008E1352 /* AppCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppCoordinator.swift; sourceTree = "<group>"; }; |
351 | 350 |
050E211121B8F2D4008E1352 /* HomeCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeCoordinator.swift; sourceTree = "<group>"; }; |
352 | 351 |
050E211321B8F39C008E1352 /* MineCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MineCoordinator.swift; sourceTree = "<group>"; }; |
@@ -389,10 +388,7 @@ |
||
389 | 388 |
0513106121CA22B5004EF1BE /* Alamofire.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Alamofire.framework; path = Carthage/Build/iOS/Alamofire.framework; sourceTree = "<group>"; }; |
390 | 389 |
0513106821CA34D6004EF1BE /* GroupDetailCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupDetailCoordinator.swift; sourceTree = "<group>"; }; |
391 | 390 |
0513106A21CA3545004EF1BE /* PhotoDetailCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhotoDetailCoordinator.swift; sourceTree = "<group>"; }; |
392 |
- 0513106F21CA3907004EF1BE /* CancelAlertAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CancelAlertAction.swift; sourceTree = "<group>"; }; |
|
393 |
- 0513107121CA3907004EF1BE /* DestructiveAlertAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DestructiveAlertAction.swift; sourceTree = "<group>"; }; |
|
394 | 391 |
0513107221CA3907004EF1BE /* ActionSheetView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ActionSheetView.swift; sourceTree = "<group>"; }; |
395 |
- 0513107321CA3907004EF1BE /* ConfirmAlertAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConfirmAlertAction.swift; sourceTree = "<group>"; }; |
|
396 | 392 |
0513108A21CA3914004EF1BE /* ColorQR.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ColorQR.swift; sourceTree = "<group>"; }; |
397 | 393 |
0513108B21CA3914004EF1BE /* QRCodeMaskView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QRCodeMaskView.swift; sourceTree = "<group>"; }; |
398 | 394 |
0513108C21CA3914004EF1BE /* QRCodeScanDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QRCodeScanDelegate.swift; sourceTree = "<group>"; }; |
@@ -649,6 +645,14 @@ |
||
649 | 645 |
path = Animationes; |
650 | 646 |
sourceTree = "<group>"; |
651 | 647 |
}; |
648 |
+ 050D71A122545CE20076CE06 /* NavigationController */ = { |
|
649 |
+ isa = PBXGroup; |
|
650 |
+ children = ( |
|
651 |
+ 050D71A222545D550076CE06 /* NavigationController.swift */, |
|
652 |
+ ); |
|
653 |
+ path = NavigationController; |
|
654 |
+ sourceTree = "<group>"; |
|
655 |
+ }; |
|
652 | 656 |
05130F2F21C94B32004EF1BE /* PaiaiUIKit */ = { |
653 | 657 |
isa = PBXGroup; |
654 | 658 |
children = ( |
@@ -675,6 +679,7 @@ |
||
675 | 679 |
05130F4D21C94B72004EF1BE /* UIKit */ = { |
676 | 680 |
isa = PBXGroup; |
677 | 681 |
children = ( |
682 |
+ 050D71A122545CE20076CE06 /* NavigationController */, |
|
678 | 683 |
055BB53F220AEA4E009548AA /* Nibless */, |
679 | 684 |
0584FD7A21FABA0300FA1E3E /* Present */, |
680 | 685 |
05C8D21E21EDD5A80001E847 /* NavigationBar */, |
@@ -1058,9 +1063,6 @@ |
||
1058 | 1063 |
057317A321F5C6C0009B2FCE /* BottomCancelItem.swift */, |
1059 | 1064 |
059B58A721F83B1600FA64C2 /* CenterCancelItem.swift */, |
1060 | 1065 |
059B58A921F83B2E00FA64C2 /* CenterConfirmItem.swift */, |
1061 |
- 0513106F21CA3907004EF1BE /* CancelAlertAction.swift */, |
|
1062 |
- 0513107121CA3907004EF1BE /* DestructiveAlertAction.swift */, |
|
1063 |
- 0513107321CA3907004EF1BE /* ConfirmAlertAction.swift */, |
|
1064 | 1066 |
); |
1065 | 1067 |
path = AlertAction; |
1066 | 1068 |
sourceTree = "<group>"; |
@@ -1294,6 +1296,7 @@ |
||
1294 | 1296 |
7737858CEE753530C312F2CB /* Frameworks */, |
1295 | 1297 |
); |
1296 | 1298 |
sourceTree = "<group>"; |
1299 |
+ usesTabs = 0; |
|
1297 | 1300 |
}; |
1298 | 1301 |
6CEBD1001CA8D680004DBDE0 /* Products */ = { |
1299 | 1302 |
isa = PBXGroup; |
@@ -1484,7 +1487,7 @@ |
||
1484 | 1487 |
attributes = { |
1485 | 1488 |
LastSwiftUpdateCheck = 1010; |
1486 | 1489 |
LastUpgradeCheck = 1020; |
1487 |
- ORGANIZATIONNAME = yb; |
|
1490 |
+ ORGANIZATIONNAME = FFIB; |
|
1488 | 1491 |
TargetAttributes = { |
1489 | 1492 |
05130F2D21C94B32004EF1BE = { |
1490 | 1493 |
CreatedOnToolsVersion = 10.1; |
@@ -1524,7 +1527,7 @@ |
||
1524 | 1527 |
}; |
1525 | 1528 |
}; |
1526 | 1529 |
buildConfigurationList = 6CEBD0FA1CA8D680004DBDE0 /* Build configuration list for PBXProject "Paiai" */; |
1527 |
- compatibilityVersion = "Xcode 3.2"; |
|
1530 |
+ compatibilityVersion = "Xcode 10.0"; |
|
1528 | 1531 |
developmentRegion = en; |
1529 | 1532 |
hasScannedForEncodings = 0; |
1530 | 1533 |
knownRegions = ( |
@@ -1627,7 +1630,6 @@ |
||
1627 | 1630 |
05C8D21D21EDD3770001E847 /* NavigationBarInteractivePopDeletegate.swift in Sources */, |
1628 | 1631 |
05C8D22421EED92F0001E847 /* NavigationBarPushAndPopDelegate.swift in Sources */, |
1629 | 1632 |
05130FFD21CA1B39004EF1BE /* HardwareAuthorization.swift in Sources */, |
1630 |
- 0513107D21CA3907004EF1BE /* CancelAlertAction.swift in Sources */, |
|
1631 | 1633 |
05130FFE21CA1B39004EF1BE /* WaterfallFlowLayout.swift in Sources */, |
1632 | 1634 |
05130FFF21CA1B39004EF1BE /* WaterfallFlowConfiguration.swift in Sources */, |
1633 | 1635 |
055BB53E220AEA3B009548AA /* NiblessViewController.swift in Sources */, |
@@ -1639,12 +1641,10 @@ |
||
1639 | 1641 |
0513100121CA1B39004EF1BE /* CGPointExt.swift in Sources */, |
1640 | 1642 |
0584FD7521F9C70D00FA1E3E /* SideAnimator.swift in Sources */, |
1641 | 1643 |
0584FD7721F9C8A300FA1E3E /* PresentAnimatorDelegate.swift in Sources */, |
1642 |
- 0513107F21CA3907004EF1BE /* DestructiveAlertAction.swift in Sources */, |
|
1643 | 1644 |
059B589F21F7103100FA64C2 /* AlertItem.swift in Sources */, |
1644 | 1645 |
059B58A621F7235D00FA64C2 /* AlertAction.swift in Sources */, |
1645 | 1646 |
0513109821CA3915004EF1BE /* QRCodeScanResult.swift in Sources */, |
1646 | 1647 |
0513100221CA1B39004EF1BE /* CGSizeExt.swift in Sources */, |
1647 |
- 0513108121CA3907004EF1BE /* ConfirmAlertAction.swift in Sources */, |
|
1648 | 1648 |
05C8D22221EED6860001E847 /* NavigationBarInteractiveViewController.swift in Sources */, |
1649 | 1649 |
0513109A21CA3915004EF1BE /* QRCodeScanView.swift in Sources */, |
1650 | 1650 |
0513100721CA1B39004EF1BE /* UIViewController+UIBarButtonItem.swift in Sources */, |
@@ -1671,6 +1671,7 @@ |
||
1671 | 1671 |
0513101921CA1B39004EF1BE /* UIImageExt.swift in Sources */, |
1672 | 1672 |
05C8D22921EF0A9F0001E847 /* NavigationControllerProxy.swift in Sources */, |
1673 | 1673 |
05D3A3D02200288400A29A20 /* Storyboarded.swift in Sources */, |
1674 |
+ 050D71A322545D550076CE06 /* NavigationController.swift in Sources */, |
|
1674 | 1675 |
05C0CEFB21F85A7700993DE2 /* ActionSheetController.swift in Sources */, |
1675 | 1676 |
05C8D21421ED8B9B0001E847 /* NavigationBackViewController.swift in Sources */, |
1676 | 1677 |
0584FD7C21FABC1400FA1E3E /* PresentExtension.swift in Sources */, |
@@ -1937,7 +1938,11 @@ |
||
1937 | 1938 |
INFOPLIST_FILE = PaiaiUIKit/Info.plist; |
1938 | 1939 |
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; |
1939 | 1940 |
IPHONEOS_DEPLOYMENT_TARGET = 10.0; |
1940 |
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; |
|
1941 |
+ LD_RUNPATH_SEARCH_PATHS = ( |
|
1942 |
+ "$(inherited)", |
|
1943 |
+ "@executable_path/Frameworks", |
|
1944 |
+ "@loader_path/Frameworks", |
|
1945 |
+ ); |
|
1941 | 1946 |
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; |
1942 | 1947 |
MTL_FAST_MATH = YES; |
1943 | 1948 |
PRODUCT_BUNDLE_IDENTIFIER = FFIB.PaiaiUIKit; |
@@ -1973,7 +1978,11 @@ |
||
1973 | 1978 |
INFOPLIST_FILE = PaiaiUIKit/Info.plist; |
1974 | 1979 |
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; |
1975 | 1980 |
IPHONEOS_DEPLOYMENT_TARGET = 10.0; |
1976 |
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; |
|
1981 |
+ LD_RUNPATH_SEARCH_PATHS = ( |
|
1982 |
+ "$(inherited)", |
|
1983 |
+ "@executable_path/Frameworks", |
|
1984 |
+ "@loader_path/Frameworks", |
|
1985 |
+ ); |
|
1977 | 1986 |
MTL_FAST_MATH = YES; |
1978 | 1987 |
PRODUCT_BUNDLE_IDENTIFIER = FFIB.PaiaiUIKit; |
1979 | 1988 |
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; |
@@ -2013,7 +2022,11 @@ |
||
2013 | 2022 |
INFOPLIST_FILE = PaiaiDataKit/Info.plist; |
2014 | 2023 |
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; |
2015 | 2024 |
IPHONEOS_DEPLOYMENT_TARGET = 10.0; |
2016 |
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; |
|
2025 |
+ LD_RUNPATH_SEARCH_PATHS = ( |
|
2026 |
+ "$(inherited)", |
|
2027 |
+ "@executable_path/Frameworks", |
|
2028 |
+ "@loader_path/Frameworks", |
|
2029 |
+ ); |
|
2017 | 2030 |
LIBRARY_SEARCH_PATHS = ( |
2018 | 2031 |
"$(inherited)", |
2019 | 2032 |
"$(PROJECT_DIR)/Paiai/wxSDK", |
@@ -2062,7 +2075,11 @@ |
||
2062 | 2075 |
INFOPLIST_FILE = PaiaiDataKit/Info.plist; |
2063 | 2076 |
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; |
2064 | 2077 |
IPHONEOS_DEPLOYMENT_TARGET = 10.0; |
2065 |
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; |
|
2078 |
+ LD_RUNPATH_SEARCH_PATHS = ( |
|
2079 |
+ "$(inherited)", |
|
2080 |
+ "@executable_path/Frameworks", |
|
2081 |
+ "@loader_path/Frameworks", |
|
2082 |
+ ); |
|
2066 | 2083 |
LIBRARY_SEARCH_PATHS = ( |
2067 | 2084 |
"$(inherited)", |
2068 | 2085 |
"$(PROJECT_DIR)/Paiai/wxSDK", |
@@ -2104,7 +2121,11 @@ |
||
2104 | 2121 |
INFOPLIST_FILE = Paiai_iOS/Info.plist; |
2105 | 2122 |
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; |
2106 | 2123 |
IPHONEOS_DEPLOYMENT_TARGET = 10.0; |
2107 |
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; |
|
2124 |
+ LD_RUNPATH_SEARCH_PATHS = ( |
|
2125 |
+ "$(inherited)", |
|
2126 |
+ "@executable_path/Frameworks", |
|
2127 |
+ "@loader_path/Frameworks", |
|
2128 |
+ ); |
|
2108 | 2129 |
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; |
2109 | 2130 |
MTL_FAST_MATH = YES; |
2110 | 2131 |
PRODUCT_BUNDLE_IDENTIFIER = "com.Paiai-iOS"; |
@@ -2144,7 +2165,11 @@ |
||
2144 | 2165 |
INFOPLIST_FILE = Paiai_iOS/Info.plist; |
2145 | 2166 |
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; |
2146 | 2167 |
IPHONEOS_DEPLOYMENT_TARGET = 10.0; |
2147 |
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; |
|
2168 |
+ LD_RUNPATH_SEARCH_PATHS = ( |
|
2169 |
+ "$(inherited)", |
|
2170 |
+ "@executable_path/Frameworks", |
|
2171 |
+ "@loader_path/Frameworks", |
|
2172 |
+ ); |
|
2148 | 2173 |
MTL_FAST_MATH = YES; |
2149 | 2174 |
PRODUCT_BUNDLE_IDENTIFIER = "com.Paiai-iOS"; |
2150 | 2175 |
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; |
@@ -2267,7 +2292,8 @@ |
||
2267 | 2292 |
"-all_load", |
2268 | 2293 |
); |
2269 | 2294 |
SDKROOT = iphoneos; |
2270 |
- SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; |
|
2295 |
+ SWIFT_COMPILATION_MODE = wholemodule; |
|
2296 |
+ SWIFT_OPTIMIZATION_LEVEL = "-O"; |
|
2271 | 2297 |
VALIDATE_PRODUCT = YES; |
2272 | 2298 |
}; |
2273 | 2299 |
name = Release; |
@@ -2301,7 +2327,10 @@ |
||
2301 | 2327 |
); |
2302 | 2328 |
INFOPLIST_FILE = PaiAi/Info.plist; |
2303 | 2329 |
IPHONEOS_DEPLOYMENT_TARGET = 10.0; |
2304 |
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; |
|
2330 |
+ LD_RUNPATH_SEARCH_PATHS = ( |
|
2331 |
+ "$(inherited)", |
|
2332 |
+ "@executable_path/Frameworks", |
|
2333 |
+ ); |
|
2305 | 2334 |
LIBRARY_SEARCH_PATHS = ( |
2306 | 2335 |
"$(inherited)", |
2307 | 2336 |
"$(PROJECT_DIR)/Paiai/wxSDK", |
@@ -2348,7 +2377,10 @@ |
||
2348 | 2377 |
); |
2349 | 2378 |
INFOPLIST_FILE = PaiAi/Info.plist; |
2350 | 2379 |
IPHONEOS_DEPLOYMENT_TARGET = 10.0; |
2351 |
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; |
|
2380 |
+ LD_RUNPATH_SEARCH_PATHS = ( |
|
2381 |
+ "$(inherited)", |
|
2382 |
+ "@executable_path/Frameworks", |
|
2383 |
+ ); |
|
2352 | 2384 |
LIBRARY_SEARCH_PATHS = ( |
2353 | 2385 |
"$(inherited)", |
2354 | 2386 |
"$(PROJECT_DIR)/Paiai/wxSDK", |
@@ -34,6 +34,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate, WXApiDelegate { |
||
34 | 34 |
let rootViewController = ContainerViewController() |
35 | 35 |
let nav = UINavigationController(rootViewController: rootViewController) |
36 | 36 |
|
37 |
+ rootViewController.setupNavigationBarPushAndPopDelegate() |
|
37 | 38 |
window = UIWindow(frame: UIScreen.main.bounds) |
38 | 39 |
window?.rootViewController = nav |
39 | 40 |
window?.makeKeyAndVisible() |
@@ -25,6 +25,8 @@ |
||
25 | 25 |
<dict> |
26 | 26 |
<key>CFBundleTypeRole</key> |
27 | 27 |
<string>Editor</string> |
28 |
+ <key>CFBundleURLName</key> |
|
29 |
+ <string>weixin</string> |
|
28 | 30 |
<key>CFBundleURLSchemes</key> |
29 | 31 |
<array> |
30 | 32 |
<string>wx4e22a0c8ae6d766d</string> |
@@ -43,6 +45,8 @@ |
||
43 | 45 |
<dict> |
44 | 46 |
<key>CFBundleTypeRole</key> |
45 | 47 |
<string>Editor</string> |
48 |
+ <key>CFBundleURLName</key> |
|
49 |
+ <string>weibo</string> |
|
46 | 50 |
<key>CFBundleURLSchemes</key> |
47 | 51 |
<array> |
48 | 52 |
<string>wb2730190333</string> |
@@ -74,6 +74,7 @@ class NetworkApi { |
||
74 | 74 |
if status == 200 { |
75 | 75 |
observer(.success(data)) |
76 | 76 |
} else { |
77 |
+ print(json) |
|
77 | 78 |
Toast.show(message: (json["description"] as? String) ?? "") |
78 | 79 |
observer(.error(BusinessError(id: status))) |
79 | 80 |
} |
@@ -17,12 +17,12 @@ struct WXUserInfoRemoteAPI: UserInfoRemoteAPI { |
||
17 | 17 |
init() {} |
18 | 18 |
|
19 | 19 |
func login() -> Single<UserInfo> { |
20 |
- #if (arch(i386) || arch(x86_64)) |
|
20 |
+// #if (arch(i386) || arch(x86_64)) |
|
21 | 21 |
return Single.create(subscribe: { (observer) in |
22 | 22 |
observer(.success(UserInfo(json: ["user_id": "fiDz2Ms" as AnyObject, "userName": "郑剑飞" as AnyObject, "photoPath": "https://wx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTJibSYLgvXpMakvD9FaCqfiaWqcMiaiaz905YxWPuO4hy8F2lGheV7kVr9vKKXFgmL1S5s4QJgxwuwtVw/132" as AnyObject]))) |
23 | 23 |
return Disposables.create() |
24 | 24 |
}) |
25 |
- #else |
|
25 |
+// #else |
|
26 | 26 |
loginWithWeChat() |
27 | 27 |
return addWXLoginDidFinish().flatMap({ |
28 | 28 |
return self.getWXToken(param: $0) |
@@ -33,7 +33,7 @@ struct WXUserInfoRemoteAPI: UserInfoRemoteAPI { |
||
33 | 33 |
}).do(onSuccess: { res in |
34 | 34 |
print(res) |
35 | 35 |
}) |
36 |
- #endif |
|
36 |
+// #endif |
|
37 | 37 |
} |
38 | 38 |
|
39 | 39 |
fileprivate func loginWithWeChat() { |
@@ -71,9 +71,7 @@ public class UserInfoViewModel { |
||
71 | 71 |
repository.guestLogin().subscribe(onSuccess: { (userInfo) in |
72 | 72 |
self.shareUserInfo.accept(userInfo) |
73 | 73 |
self._loginCompleted.onNext(()) |
74 |
- }) { (error) in |
|
75 |
- #warning("错误处理") |
|
76 |
- }.disposed(by: disposeBag) |
|
74 |
+ }).disposed(by: disposeBag) |
|
77 | 75 |
} |
78 | 76 |
|
79 | 77 |
public func wxLogin() { |
@@ -81,10 +79,8 @@ public class UserInfoViewModel { |
||
81 | 79 |
repository.wxLogin().subscribe(onSuccess: { (userInfo) in |
82 | 80 |
self.shareUserInfo.accept(userInfo) |
83 | 81 |
self._loginCompleted.onNext(()) |
84 |
- }) { (error) in |
|
85 |
- print(error) |
|
86 |
- #warning("错误处理") |
|
87 |
- }.disposed(by: disposeBag) |
|
82 |
+ Toast.hide() |
|
83 |
+ }).disposed(by: disposeBag) |
|
88 | 84 |
} |
89 | 85 |
|
90 | 86 |
deinit { |
@@ -1,16 +0,0 @@ |
||
1 |
-// |
|
2 |
-// CancelAlertAction.swift |
|
3 |
-// PaiAi |
|
4 |
-// |
|
5 |
-// Created by FFIB on 2017/11/20. |
|
6 |
-// Copyright © 2017年 yb. All rights reserved. |
|
7 |
-// |
|
8 |
- |
|
9 |
-import UIKit |
|
10 |
-// |
|
11 |
-//class CancelAlertAction: FFAlertAction { |
|
12 |
-// init() { |
|
13 |
-// super.init(attributedTitle: NSAttributedString(string: "取消", attributes: [NSAttributedString.Key.foregroundColor: UIColor(r: 51, g: 51, b: 51)]), |
|
14 |
-// backgroundColor: UIColor(r: 222, g: 222, b: 222), handler: nil) |
|
15 |
-// } |
|
16 |
-//} |
@@ -1,16 +0,0 @@ |
||
1 |
-// |
|
2 |
-// ConfirmAlertAction.swift |
|
3 |
-// PaiAi |
|
4 |
-// |
|
5 |
-// Created by FFIB on 2017/11/20. |
|
6 |
-// Copyright © 2017年 yb. All rights reserved. |
|
7 |
-// |
|
8 |
- |
|
9 |
-import UIKit |
|
10 |
- |
|
11 |
-//class ConfirmAlertAction: FFAlertAction { |
|
12 |
-// init(title: String = "确定", handler: ((FFAlertAction) -> Void)?) { |
|
13 |
-// super.init(attributedTitle: NSAttributedString(string: title, attributes: [NSAttributedString.Key.foregroundColor: UIColor.white]), |
|
14 |
-// backgroundColor: UIColor(r: 129, g: 209, b: 53), handler: handler) |
|
15 |
-// } |
|
16 |
-//} |
@@ -1,16 +0,0 @@ |
||
1 |
-// |
|
2 |
-// DestructiveAlertAction.swift |
|
3 |
-// PaiAi |
|
4 |
-// |
|
5 |
-// Created by FFIB on 2017/11/20. |
|
6 |
-// Copyright © 2017年 yb. All rights reserved. |
|
7 |
-// |
|
8 |
- |
|
9 |
-import UIKit |
|
10 |
- |
|
11 |
-//class DestructiveAlertAction: FFAlertAction { |
|
12 |
-// init(title: String, handler: ((FFAlertAction) -> Void)?) { |
|
13 |
-// super.init(attributedTitle: NSAttributedString(string: title, attributes: [NSAttributedString.Key.foregroundColor: UIColor(r: 248, g: 86, b: 131)]), |
|
14 |
-// backgroundColor: UIColor.white, handler: handler) |
|
15 |
-// } |
|
16 |
-//} |
@@ -15,7 +15,7 @@ public extension GestureRecognizerDelegate where Self: UIViewController & Naviga |
||
15 | 15 |
gestureRecognizer.isKind(of: UIPanGestureRecognizer.self), |
16 | 16 |
let pan = gestureRecognizer as? UIPanGestureRecognizer { |
17 | 17 |
let point = pan.translation(in: self.view) |
18 |
- if point.x > 30 { |
|
18 |
+ if point.x > 0 { |
|
19 | 19 |
return true |
20 | 20 |
} |
21 | 21 |
} |
@@ -10,46 +10,59 @@ import UIKit |
||
10 | 10 |
|
11 | 11 |
public protocol NavigationBarInOutAnimator: class { |
12 | 12 |
var navigationView: UIView { get } |
13 |
- func navigationBarFadeIn() |
|
14 |
- func navigationBarFadeOut() |
|
15 |
- func navigationBarFadeAndMoveIn() |
|
16 |
- func navigationBarFadeAndMoveOut() |
|
13 |
+ func navigationBarFadeIn(percentage: CGFloat) |
|
14 |
+ func navigationBarFadeOut(percentage: CGFloat) |
|
15 |
+ func navigationBarFadeAndMoveIn(percentage: CGFloat) |
|
16 |
+ func navigationBarFadeAndMoveOut(percentage: CGFloat) |
|
17 | 17 |
func navigationBarFadeOutWithPercentage(_ percentage: CGFloat) |
18 | 18 |
func navigationBarFadeInWithPercentage(_ percentage: CGFloat) |
19 | 19 |
} |
20 | 20 |
|
21 | 21 |
public extension NavigationBarInOutAnimator where Self: UIViewController & NavigationBarPushAndPopDelegate { |
22 |
- func navigationBarFadeIn() { |
|
23 |
- UIView.animate(withDuration: 0.3, animations: { |
|
22 |
+ func navigationBarFadeIn(percentage: CGFloat) { |
|
23 |
+ UIView.animate(withDuration: TimeInterval(0.3 * percentage), |
|
24 |
+ animations: { |
|
24 | 25 |
self.navigationView.alpha = 1 |
25 | 26 |
}, completion: nil) |
26 | 27 |
} |
27 | 28 |
|
28 |
- func navigationBarFadeOut() { |
|
29 |
- UIView.animate(withDuration: 0.3, animations: { |
|
29 |
+ func navigationBarFadeOut(percentage: CGFloat) { |
|
30 |
+ UIView.animate(withDuration: TimeInterval(0.3 * percentage), |
|
31 |
+ animations: { |
|
30 | 32 |
self.navigationView.alpha = 0 |
31 | 33 |
}, completion: nil) |
32 | 34 |
} |
33 | 35 |
|
34 |
- func navigationBarFadeAndMoveIn() { |
|
35 |
- setNavigationBar() |
|
36 |
- navigationController?.navigationBar.layoutIfNeeded() |
|
36 |
+ func navigationBarFadeAndMoveIn(percentage: CGFloat) { |
|
37 |
+// setNavigationBar() |
|
38 |
+// navigationController?.navigationBar.layoutIfNeeded() |
|
37 | 39 |
|
38 |
- let originX = navigationView.center.x |
|
39 |
- navigationView.center.x = UIScreen.main.bounds.width |
|
40 |
+// let originX = navigationView.center.x |
|
41 |
+// navigationView.center.x = UIScreen.main.bounds.width |
|
40 | 42 |
|
41 |
- UIView.animate(withDuration: 0.3, animations: { |
|
43 |
+ UIView.animate(withDuration: TimeInterval(0.3 * percentage), |
|
44 |
+ animations: { |
|
42 | 45 |
self.navigationView.alpha = 1 |
43 |
- self.navigationView.center.x = originX |
|
44 |
- }, completion: nil) |
|
46 |
+ self.navigationView.center.x = UIScreen.main.bounds.width / 2 |
|
47 |
+ }, completion: { flag in |
|
48 |
+// if flag { |
|
49 |
+ self.setNavigationBar() |
|
50 |
+// } |
|
51 |
+ print("move in \(flag)") |
|
52 |
+ }) |
|
45 | 53 |
} |
46 | 54 |
|
47 |
- func navigationBarFadeAndMoveOut() { |
|
48 |
- UIView.animate(withDuration: 0.3, animations: { |
|
55 |
+ func navigationBarFadeAndMoveOut(percentage: CGFloat) { |
|
56 |
+ print(self.navigationView.center) |
|
57 |
+ UIView.animate(withDuration: TimeInterval(0.3 * percentage), |
|
58 |
+ animations: { |
|
49 | 59 |
self.navigationView.alpha = 0 |
50 | 60 |
self.navigationView.center.x = UIScreen.main.bounds.width |
51 |
- }, completion: { _ in |
|
52 |
- self.navigationView.removeFromSuperview() |
|
61 |
+ }, completion: { flag in |
|
62 |
+// if flag { |
|
63 |
+ self.navigationView.removeFromSuperview() |
|
64 |
+// } |
|
65 |
+ print("move out \(flag)") |
|
53 | 66 |
}) |
54 | 67 |
} |
55 | 68 |
|
@@ -29,8 +29,9 @@ extension UIViewController { |
||
29 | 29 |
/// navigationController?.visibleViewController == self pop to viewController |
30 | 30 |
|
31 | 31 |
let percentageAnimation: ((CGFloat) -> Void) |
32 |
- let fadeInAnimation: (() -> Void) |
|
33 |
- let fadeOutAnimation: (() -> Void) |
|
32 |
+ let fadeInAnimation: ((CGFloat) -> Void) |
|
33 |
+ let fadeOutAnimation: ((CGFloat) -> Void) |
|
34 |
+ |
|
34 | 35 |
if navigationController == nil { |
35 | 36 |
percentageAnimation = self.navigationBarFadeOutWithPercentage |
36 | 37 |
fadeInAnimation = self.navigationBarFadeAndMoveIn |
@@ -49,10 +50,10 @@ extension UIViewController { |
||
49 | 50 |
|
50 | 51 |
if (percentage > 0.5 && navigationController == nil) || |
51 | 52 |
(percentage < 0.5 && navigationController?.visibleViewController == self) { |
52 |
- fadeOutAnimation() |
|
53 |
+ fadeOutAnimation(1 - percentage) |
|
53 | 54 |
} else if (percentage < 0.5 && navigationController == nil) || |
54 | 55 |
(percentage > 0.5 && navigationController?.visibleViewController == self) { |
55 |
- fadeInAnimation() |
|
56 |
+ fadeInAnimation(percentage) |
|
56 | 57 |
} |
57 | 58 |
} |
58 | 59 |
|
@@ -29,11 +29,11 @@ public extension NavigationControllerDelegate where Self: UIViewController { |
||
29 | 29 |
to toVC: UIViewController) -> UIViewControllerAnimatedTransitioning? { |
30 | 30 |
|
31 | 31 |
if operation == .push { |
32 |
- (toVC as? NavigationBarInOutAnimator)?.navigationBarFadeAndMoveIn() |
|
33 |
- (fromVC as? NavigationBarInOutAnimator)?.navigationBarFadeOut() |
|
32 |
+ (toVC as? NavigationBarInOutAnimator)?.navigationBarFadeAndMoveIn(percentage: 1) |
|
33 |
+ (fromVC as? NavigationBarInOutAnimator)?.navigationBarFadeOut(percentage: 1) |
|
34 | 34 |
} else { |
35 |
- (toVC as? NavigationBarInOutAnimator)?.navigationBarFadeIn() |
|
36 |
- (fromVC as? NavigationBarInOutAnimator)?.navigationBarFadeAndMoveOut() |
|
35 |
+ (toVC as? NavigationBarInOutAnimator)?.navigationBarFadeIn(percentage: 1) |
|
36 |
+ (fromVC as? NavigationBarInOutAnimator)?.navigationBarFadeAndMoveOut(percentage: 1) |
|
37 | 37 |
} |
38 | 38 |
|
39 | 39 |
return nil |
@@ -0,0 +1,29 @@ |
||
1 |
+// |
|
2 |
+// NavigationController.swift |
|
3 |
+// PaiaiUIKit |
|
4 |
+// |
|
5 |
+// Created by ffib on 2019/4/3. |
|
6 |
+// Copyright © 2019 yb. All rights reserved. |
|
7 |
+// |
|
8 |
+ |
|
9 |
+import UIKit |
|
10 |
+ |
|
11 |
+class NavigationController: UINavigationController { |
|
12 |
+ |
|
13 |
+} |
|
14 |
+ |
|
15 |
+//class NavigationController: UINavigationController { |
|
16 |
+// |
|
17 |
+// override func viewDidLoad() { |
|
18 |
+// super.viewDidLoad() |
|
19 |
+// |
|
20 |
+// // Do any additional setup after loading the view. |
|
21 |
+// } |
|
22 |
+// |
|
23 |
+// func set |
|
24 |
+//} |
|
25 |
+// |
|
26 |
+// |
|
27 |
+//extension UIViewController { |
|
28 |
+// n |
|
29 |
+//} |
@@ -72,7 +72,6 @@ open class PageViewController: UIViewController { |
||
72 | 72 |
constructViewHierarchy() |
73 | 73 |
activateConstraints() |
74 | 74 |
setMenuGestureRecognizer() |
75 |
- setupNavigationBarPushAndPopDelegate() |
|
76 | 75 |
setupNavigationBarInteractivePopDelegate() |
77 | 76 |
} |
78 | 77 |
|
@@ -74,6 +74,10 @@ final class GroupViewController: UIViewController { |
||
74 | 74 |
} |
75 | 75 |
collectionView.startRefreshing(at: .top) |
76 | 76 |
} |
77 |
+ |
|
78 |
+ deinit { |
|
79 |
+ collectionView.endAllRefreshing() |
|
80 |
+ } |
|
77 | 81 |
} |
78 | 82 |
|
79 | 83 |
/// UI bindings |
@@ -60,6 +60,10 @@ final class HomeViewController: UIViewController { |
||
60 | 60 |
self.viewModel.preload() |
61 | 61 |
} |
62 | 62 |
} |
63 |
+ |
|
64 |
+ deinit { |
|
65 |
+ collectionView.endAllRefreshing() |
|
66 |
+ } |
|
63 | 67 |
} |
64 | 68 |
|
65 | 69 |
/// UI bindings |
@@ -88,6 +88,10 @@ final class MessageListViewController: UIViewController { |
||
88 | 88 |
})) |
89 | 89 |
presentController(alert) |
90 | 90 |
} |
91 |
+ |
|
92 |
+ deinit { |
|
93 |
+ tableView.endAllRefreshing() |
|
94 |
+ } |
|
91 | 95 |
} |
92 | 96 |
|
93 | 97 |
fileprivate extension MessageListViewController { |
@@ -56,6 +56,10 @@ final class MineGroupViewController: UIViewController { |
||
56 | 56 |
self.viewModel.preload() |
57 | 57 |
} |
58 | 58 |
} |
59 |
+ |
|
60 |
+ deinit { |
|
61 |
+ tableView.endAllRefreshing() |
|
62 |
+ } |
|
59 | 63 |
} |
60 | 64 |
|
61 | 65 |
fileprivate extension MineGroupViewController { |
@@ -53,6 +53,10 @@ final class MineOrderViewController: UIViewController { |
||
53 | 53 |
self.viewModel.preload() |
54 | 54 |
} |
55 | 55 |
} |
56 |
+ |
|
57 |
+ deinit { |
|
58 |
+ tableView.endAllRefreshing() |
|
59 |
+ } |
|
56 | 60 |
} |
57 | 61 |
|
58 | 62 |
/// binding UI |